Skip to content

blosc: add build-blosc.yml for riscv64 wheels - #1500

Merged
luhenry merged 2 commits into
mainfrom
blosc
Sep 8, 2026
Merged

blosc: add build-blosc.yml for riscv64 wheels#1500
luhenry merged 2 commits into
mainfrom
blosc

Conversation

@luhenry

@luhenry luhenry commented Sep 8, 2026

Copy link
Copy Markdown
Member

Compiles the vendored c-blosc C library (with LZ4 and zlib codecs) into a Python extension via CMake/scikit-build. Upstream publishes no riscv64 wheel.

Mirrors upstream's cibuildwheels.yml.

Differs from upstream

  • Nothing beyond the riscv64 image.

Testing

  • same as upstream, python -m blosc.test

License: Wheel bundles c-blosc's own BSD licence plus its statically-linked LZ4 (BSD) and zlib (zlib licence); the vendored zstd (BSD) copy ships no licence file at all, so the patch restores one.

Patches

  • 0001-Ship-the-licences-of-what-the-wheel-actually-bundles.patch - To upstream (not submitted, no cross-repo issue/PR). Adds a license_files list to setup.py; without it only the wrapper's own LICENSE.txt ships. Reproduces off riscv64 too (verified locally on macOS arm64, an equally SIMD-unsupported architecture for this c-blosc version).

Built and tested locally (macOS arm64, no SIMD path, same fallback riscv64 will take): 38 passed, 1 skipped (psutil-gated leak test, same as upstream's own CI).

luhenry added a commit that referenced this pull request Sep 8, 2026
C-Blosc's own CMakeLists.txt already gates SSE2/AVX2 on a recognized
x86 CMAKE_SYSTEM_PROCESSOR and falls back to its portable
shuffle-generic.c/bitshuffle-generic.c path with just a warning
otherwise, so riscv64 needs no SIMD-fallback patch. Verified locally
by building and running the full test suite on macOS arm64 (an
equally-unrecognized architecture for this old c-blosc), which
exercises the same code path riscv64 will.

One patch adds an explicit license_files list (setup.py sets none
today, so setuptools' default LICEN[CS]E* glob only picks up this
project's own LICENSE.txt) covering c-blosc's own licence plus the
codecs it statically compiles in by default (LZ4, zlib), including a
restored LICENSE for the vendored zstd 1.5.6 tree, which never carried
one over from upstream.
The registry does have riscv64 numpy wheels for cp313/cp314/cp314t
too (numpy >= 2.3.3, manylinux_2_38/2_39_riscv64) -- an earlier check
missed them by grepping only for the legacy `linux_riscv64.whl`
filename suffix, which the newer manylinux_2_38/2_39-tagged wheels
don't use. Drop the cp312-only restriction.
@luhenry
luhenry merged commit 0c7da46 into main Sep 8, 2026
10 checks passed
@luhenry
luhenry deleted the blosc branch September 8, 2026 08:45
@luhenry luhenry mentioned this pull request Sep 8, 2026
@luhenry luhenry linked an issue Sep 8, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

blosc riscv64 support

1 participant